1. Field of the Invention
The present invention relates to a data delivery system which delivers digital contents via a network.
This application claims the priority of the Japanese Patent Application No. 2002-161911 filed on Jun. 3, 2002, the entirety of which is incorporated by reference herein.
2. Description of the Related Art
Recently, there has come in a real-time delivery of digital contents such as digital video, digital audio or the like via a network such as Internet.
Referring now to FIG. 1, there is schematically illustrated a conventional data delivery system for real-time delivery of contents over a network. The data delivery system is generally indicated with a reference 101. As shown, the real-time delivery system 101 includes a transmitter 102 to transmit contents, and a receiver 103 to receive the transmitted contents. The transmitter 102 is provided at a contents provider, for example, to deliver contents via a network 104 for example. The receiver 103 is provided at the user that views or listens to the contents received via the network. The network 104 is for example a medium which can transmit data such as Internet, cable broadcast, digitalized terrestrial broadcast, satellite communication system, etc. In such a contents delivery system, contents are real-time delivered from the transmitter 102 to the receiver 103 via the network 104.
The transmitter 102 includes an encoder 111 to encode the contents into a data stream for delivery, and a sending buffer 112 to store the encoded data stream once. The receiver 103 includes a reception buffer 121 to store the received data stream once, and a decoder 122 to decode the data stream stored in the reception buffer 121 into digital contents.
During the data deliver, the transmitter 102 and receiver 103 function as will be described below:
The transmitter 102 is supplied with contents such as video data, audio data or the like real-time produced sequentially. The encoder 111 of the transmitter 102 encodes the contents supplied sequentially to generate a data stream in a predetermined form of transmission. The encoder 111 stores the data stream thus generated into the sending buffer 112 once. Then, the transmitter 102 transmits the data stream stored in the sending buffer 112 to the receiver 103 via the network 104.
When sending the data stream to the network 104, the transmitter 102 appends, to the data stream, a system time clock (STC) which controls a reference clock for the receiver 103 and decoding time stamp (DTS) indicating a time when the receiver 103 starts decoding each access unit. At the transmitter 102, a time when the data stream is to arrive at the receiver 103 is assumed and STC generated based on the assumed arrival time is discretely inserted into the data stream. That is, at the time of encoding, a reference time at which the data stream is to arrive at the receiver 103 is assumed at the transmitter 102, and STC corresponding to the assumed reference arrival time is inserted into the data stream. Also, at the transmitter 102, a time when each access unit is to be decoded at the receiver 103 is assumed and DTS in which the assumed decoding time is stated is appended to each access unit. It should be noted that the access unit is a minimum unit of data stream in which data can singly be decoded. For example, in a video data stream, one frame is equivalent to an access unit. A data stream delivered via the network 104 is a data string in which a plurality of access units is formed continuously.
The receiver 103 receives the data stream delivered via the network 104 and extracts STCs appended to the data stream. The receiver 103 makes PLL control based on STCs discretely included in the data stream and reproduces a reference clock synchronous with time information stated in STCs. The receiver 103 controls the decoding time on the basis of the reference clock.
The reception buffer 121 of the receiver 103 stores the received data stream once. The decoder 122 of the receiver 103 refers to DTS appended to the access unit. When the DTS coincides with the reference clock, the decoder 122 extracts the access unit from the reception buffer 121 and decodes it.
Meanwhile, in the real-time delivery system 101, the data stream will be delivered while the sending buffer 112 and reception buffer 121 are being supplied with data at a fixed ratio when the real-time delivery system 101 is in the steady state without any transmission error of the network. The amounts of data being stored in the sending buffer 112 and reception buffer 121 during data delivery will be explained below with reference to FIG. 2.
Once the transmitter 102 starts data delivery, it will encode the contents access unit by access unit. The encoded data is stored into the sending buffer 112. At this time, the transmitter 102 does not send the data from the sending buffer 112 to the network 104. Therefore, once the transmitter 102 has started the data delivery, the amount of data stored in the sending buffer 112 will increase stepwise.
Next, when the data stream has been stored up to a predetermined amount in the sending buffer 112, the transmitter 102 starts sending the data stream. This predetermined amount of data stream is referred to as “sending margin Bs” herein. The sending margin is intended to prevent the data stream sent to the network 104 from being discontinuous even if the data stream has not been encoded as preset because of any failure of the encoder 111 in encoding, for example. Once the data transmission has been started, the data is continuously extracted and sent from the sending buffer 112 at a predetermined transmission rate while the data is stored into the sending buffer 112 up to a predetermined amount at every interval of encoding for one access unit. It should be noted that in the steady state where no encoding error has taken place, the data transfer rate and encode rate are balanced with each other in the transmitter 102 so that the amount of data stored in the sending buffer 112 is constant not being smaller than the sending margin.
Once the transmitter 102 has started sending the data to the network 104, the receiver 103 starts storing the data into the reception buffer 121 thereof. At this time, however, decoding of the data stream is not yet started. So, the amount of data stored in the reception buffer 121 increases at the data transmission rate.
Next, when a predetermined amount of the data stream has been stored in the reception buffer 121, the receiver 103 starts decoding the data stream stored in the reception buffer 121. The predetermined amount of the data stream is referred to as “reception margin BR” herein. The reception margin is intended to prevent the data from being discontinuous even when a jitter takes place in the time for which the data is transferred from the transmitter 102 to the receiver 103 due to the transmission quality of the network 104. That is, when a jitter takes place in the data transmission time of the network 104, the data stream will possibly arrive at the receiver at any other time than assumed at the receiver. If this deviation is large, the data stream will not arrive at the receiver with the output image or sound being discontinuous before the receiver 103 starts the data decoding. The reception margin is provided to prevent such stop of outputting. The magnitude of the reception margin is set larger than assumed, depending upon the transmission quality of the network 104, against a larger jitter than a certain level which will possibly take place.
Once the receiver 103 has started the data decoding, the reception buffer 121 is supplied with data continuously at a predetermined transmission rate while a fixed amount of data is being extracted from the reception buffer 121 at every interval of decoding for one access unit. It should be noted that when the receiver 103 in the steady state where no encoding error such as jitter has taken place in the network 104, the data transfer rate and encode rate are balanced with each other so that amount of data stored in the reception buffer 121 is constant not being smaller than the reception margin.
In case a reception margin is set taking in consideration a jitter in the data transmission time of the network 104 as above, however, the end-to-end delay time from start of data encoding until that of data decoding will be very long. That is, the ento-to-end delay time from start of the contents delivery at the transmitter 102 until the user at the receiver 103 can actually enjoy the contents will be very long.